package web_util

import (
	"net/http"

	"github.com/gin-gonic/gin"

	web_constants "app/app_src/framework/constant/web"
)

func OkResult(ctx *gin.Context, data any) {
	obj := map[string]any{}
	obj[web_constants.JSON_RESULT_DATA] = data

	ctx.PureJSON(http.StatusOK, obj)
}

// 分页结果
func PageResult(ctx *gin.Context, total int, data any) {
	obj := map[string]any{}
	obj[web_constants.JSON_RESULT_TOTAL] = total
	obj[web_constants.JSON_RESULT_DATA] = data

	ctx.PureJSON(http.StatusOK, obj)
}

// 应用出错，包括服务器和数据库此类跟业务逻辑无关的错误
func AppErrorResult(ctx *gin.Context, errorCode string, errorMsg string) {
	obj := map[string]any{}
	obj[web_constants.JSON_RESULT_ERROR_CODE] = errorCode
	obj[web_constants.JSON_RESULT_ERROR_MSG] = errorMsg

	ctx.PureJSON(http.StatusInternalServerError, obj)
}

// 业务出错，业务逻辑校验中出现不满足执行后续逻辑的情况
func BizErrorResult(ctx *gin.Context, errorCode string, errorMsg string) {
	obj := map[string]any{}
	obj[web_constants.JSON_RESULT_ERROR_CODE] = errorCode
	obj[web_constants.JSON_RESULT_ERROR_MSG] = errorMsg

	ctx.PureJSON(http.StatusOK, obj)
}
